/*
*  格式化相关工具类
*/
import moment from "moment";
/**
 * 时间日期相关操作
 */

/**
 * 时间格式化
 * 将 秒级时间戳 1548080418格式化成 2019-01-21
 * @param datetime 时间戳转化字符串
 */
function formatDate(timeStamp) {
  var date = new Date();
  date.setTime(timeStamp);
  var y = date.getFullYear();
  var m = date.getMonth() + 1;
  m = m < 10 ? ('0' + m) : m;
  var d = date.getDate();
  d = d < 10 ? ('0' + d) : d;
  var h = date.getHours();
  h = h < 10 ? ('0' + h) : h;
  var minute = date.getMinutes();
  var second = date.getSeconds();
  minute = minute < 10 ? ('0' + minute) : minute;
  second = second < 10 ? ('0' + second) : second;
  return y + '-' + m + '-' + d;
}

/**
 * 时间格式化
 * 将 秒级时间戳 1548080418格式化成 2019-01-21 00:00:00
 * @param datetime 时间戳转化字符串
 */
function formatTime(timeStamp) {
  var date = new Date();
  date.setTime(timeStamp);
  var y = date.getFullYear();
  var m = date.getMonth() + 1;
  m = m < 10 ? ('0' + m) : m;
  var d = date.getDate();
  d = d < 10 ? ('0' + d) : d;
  var h = date.getHours();
  h = h < 10 ? ('0' + h) : h;
  var minute = date.getMinutes();
  var second = date.getSeconds();
  minute = minute < 10 ? ('0' + minute) : minute;
  second = second < 10 ? ('0' + second) : second;
  return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
}

/**
 * 金钱格式化
 * 将 分为单位的钱 格式化成元单位
 * @param datetime 价格分转化价格元
 */
function formatPrice(originPrice) {
  return (originPrice / 100).toFixed(2);
}


/**
 * 时间格式化
 * 将 2018-09-23T11:54:16.000+0000 格式化成 2018/09/23 11:54:16
 * @param datetime 国际化日期格式
 */
function format(datetime) {
  return formatWithSeperator(datetime, "-", ":");
}

/**
 * 时间格式化
 * 将 2018-09-23T11:54:16.000+0000 格式化成类似 2018/09/23 11:54:16
 * 可以指定日期和时间分隔符
 * @param datetime 国际化日期格式
 */
function formatWithSeperator(datetime, dateSeprator, timeSeprator) {
  if (datetime != null) {
    const dateMat = new Date(datetime);
    const year = dateMat.getFullYear();
    const month = dateMat.getMonth() + 1;
    const day = dateMat.getDate();
    const hh = dateMat.getHours();
    const mm = dateMat.getMinutes();
    const ss = dateMat.getSeconds();
    const timeFormat = year + dateSeprator + month + dateSeprator + day + " " + hh + timeSeprator + mm + timeSeprator + ss;
    return timeFormat;
  }
}

/**
 * 时间格式化
 * 输入开始时间戳和结束时间戳，返回时间差格式00:15:20
 * @param datetime 国际化日期格式
 */
function countDown(startTime, endTime) {
  let restTime = endTime - startTime; // 时间差，毫秒
  let hourText, minuteText, secondText = '00';
  hourText = moment.duration(restTime, 'ms')._data.hours || '00';
  minuteText = moment.duration(restTime, 'ms')._data.minutes || '00';
  secondText = moment.duration(restTime, 'ms')._data.seconds || '00';
  // 自动添0
  hourText = (Array(hourText).join(0) + hourText).slice(-2)
  minuteText = (Array(minuteText).join(0) + minuteText).slice(-2)
  secondText = (Array(secondText).join(0) + secondText).slice(-2)
  return hourText + ":" +  minuteText + ":" + secondText;
}

/**
 * 倒计时格式化
 * 输入数字和需要填充成的位数，返回"05"
 * @param number 数字
 * @param length 最终生成的字符串长度
 */
function addZero(number, length){
  let resultNum = number
  if(number < 10 && number >= 0 && length === 2){
    resultNum = "0" + String(number)
  }else if(number < 0 && length === 2){
    resultNum = "00"
  }
  return resultNum
}

export {
  formatDate,
  formatPrice,
  format,
  formatWithSeperator,
  countDown,
  addZero
}